package br.com.lambdacore.domain.exception;

public class LambdaCoreRuntimeException extends RuntimeException implements
		ILambdaCoreException {

	private static final long serialVersionUID = 1L;

	private String localizedMessage;

	private Object[] arguments;

	public LambdaCoreRuntimeException() {
	}

	public LambdaCoreRuntimeException(String message) {
		super(message);
	}

	public LambdaCoreRuntimeException(String message, String localizedMessage,
			Object... arguments) {
		super(message);
		this.setLocalizedMessage(localizedMessage);
		this.setArguments(arguments);
	}

	public LambdaCoreRuntimeException(String message, String localizedMessage,
			Throwable cause, Object... arguments) {
		super(message, cause);
		this.setLocalizedMessage(localizedMessage);
		this.setArguments(arguments);
	}

	public LambdaCoreRuntimeException(String message, Throwable cause) {
		super(message, cause);
	}

	public LambdaCoreRuntimeException(Throwable cause) {
		super(cause);
	}

	@Override
	public Object[] getArguments() {
		return this.arguments;
	}

	@Override
	public String getLocalizedMessage() {
		return this.localizedMessage;
	}

	@Override
	public void setArguments(Object... arguments) {
		this.arguments = arguments;
	}

	@Override
	public void setLocalizedMessage(String localizedMessage) {
		this.localizedMessage = localizedMessage;
	}
}
